The present invention is generally directed to providing a consistent interface to security services in a data processing environment which includes a plurality of independent nodes configured into one or more node sets referred to as clusters. More particularly, the present invention provides a multilayer interface which permits the modular inclusion of any number of old or new security protocols.
The IBM pSeries of data processing products include the capability of collecting independent data processing nodes together in an arrangement called a cluster for the purpose of providing application level programs with the ability of employing greater hardware resources in to carry out of their individual processing goals. The use of clusters is facilitated through the use of various operating system level utility programs accessed via defined Application Programming Interfaces (API's). Cluster Services are operating system level services that are related to the operation and administration of clusters. Since the data processing systems of the kind considered herein are typically used simultaneously by a large plurality of disparate users with each user requiring a secure computing environment in which to run, there is a corresponding need to imbue Cluster Services with inherent security protocols.
However, there are many different security mechanisms that can be used and each one of them provides a different API and a different implementation of the Global Services System API (GSS API). Application programmers who write code designed to interact directly with the security interfaces provided by the various security mechanisms and protocols must be aware of the differences in interface and implementation.
This situation has resulted in several problems. For example, customers may have different preferences in terms of the particular security mechanism that they want to use. If a customer wants to use a new security mechanism not originally provided for, cost becomes an issue since this often means that many other services need to be modified in order to support the new mechanism.
The Cluster Security Services (CtSec) subsystem of the present invention is designed to solve these problems while providing a secure computing environment for the operation of Cluster Services programming. As implemented herein Cluster Security Services exports a mechanism-independent interface for initial acquisition of such items as network identity, client-server authentication, and client authorization. Its use solves two significant problems. First, customers are no longer locked into the use of a particular security mechanism but now may configure their applications to use the underlying security mechanism of their own choice. Secondly, support associated with providing a new security mechanism impacts only one subsystem, that is, Cluster Security Services rather than impacting all of the subsystems in the cluster.
The advantages of using CtSec are several. First, the application program does not need to be aware of how the underlying security mechanism works. Second, there is thus provided an easy-to-use interface that is not changed whenever support for a new underlying security mechanism is desired. Thirdly, this scheme minimizes the number of changes required for supporting new underlying security mechanisms. Additions or modifications are required only in CtSec and not in the applications using it.